10 REM*EASY DOES IT*BY HUGH ROUNTREE*12/14/92*FOR C64 & PROMENADE EPROM DEVICE* 20 REM*ENABLE PROMOS V2.0 PREVIOUSLY*LINES 10-70 AUTO-DELETE WHEN PROGRAM RUNS* 30 REM*SET W=1 IN LINE 90 TO DISABLE SOUND TONE* 40 PRINTCHR$(147);" AUTO-DELETING LINES 10-70":PRINT 50 PRINT"10":PRINT"20":PRINT"30":PRINT"40":PRINT"50":PRINT"60":PRINT"70" 60 PRINT"F 2000,DFFF,00:RUN";CHR$(19); 70 FORI=1TO8:POKE630+I,13:NEXT:POKE198,8:POKE56,32:END 80 DIMH(15),W(8,3),PM(8,3),CA(7),A$(4),D$(2),R$(7),X$(4):FORI=1TO4:READDV(I) 90 NEXT:FORI=1TO8:READE$(I):FORIA=1TO3:READW(I,IA),PM(I,IA):NEXT:NEXT:W=0 100 DATA4096,256,16,1,"07FF",42,70,0,0,40,71,"0FFF",226,70,225,7,224,7 110 DATA"1FFF",6,14,5,14,20,14,"3FFF",6,14,5,14,0,0,"7FFF",230,70,229,70,0,0 120 DATA"FFFF",226,6,0,0,0,0,"1FFF",0,0,0,0,48,70,"03FF",0,0,0,0,40,7 130 TG$(0)="OFF)":TG$(1)=" ON)":IA=48:FORI=0TO15:H(I)=I+IA:IFI=9THENIA=55 140 NEXT:D$(1)="COMPARE":D$(2)="TRANSFER":R$(1)="LOW UNERASED BYTE" 150 R$(2)="HIGH BYTE LOADED":R$(3)="HIGH BYTE SAVED":R$(4)="HIGH BYTE READ" 160 R$(5)="FAIL ADDRESS":R$(6)=R$(5):R$(7)=R$(5) 170 A$(1)="START":A$(2)="END":A$(3)="COMPARE":A$(4)="TRANSFER" 180 C$(1)="ERASURE":C$(2)="DISK LOAD":C$(3)="DISK SAVE":C$(4)="READ EPROM" 190 C$(5)="WRITE EPROM":C$(6)="VERIFY EPROM":C$(7)="COMPARE RAM":S$=" " 200 K$(1)="PASSED":K$(2)="FAILED":DN%=8:DN=PEEK(186):IFDN>7THENDN%=DN 210 PRINTCHR$(147)CHR$(14)S$S$"[208]ROMENADE" 220 PRINT:PRINTS$"[218]ERO [211]OCKET---------> [218]" 230 PRINT:PRINTS$"[198]ILL [205]EMORY([218]ERO)---> [198]" 240 PRINT:PRINTS$"[195]HECK [197]PROM/[197]RASURE-> [197]" 250 PRINT:PRINTS$"[204]OAD [196]ISK [198]ILE------> [204]" 260 PRINT:PRINTS$"[211]AVE [196]ISK [198]ILE------> [211]" 270 PRINT:PRINTS$"[211]ET [197]PROM [208]ARAMETER-> [208]" 280 PRINT:PRINTS$"[211]ET [210]AM [193]DDRESSES--->[193][196][196]" 290 PRINT:PRINTS$"[210]EAD [197]PROM----------> [210]" 300 PRINT:PRINTS$"[215]RITE [197]PROM---------> [215]" 310 PRINT:PRINTS$"[215]RITE [197]PROM/[214]ERIFY-->[214][197][210]" 320 PRINT:PRINTS$"[214]ERIFY [197]PROM/[210]AM----> [214]" 330 PRINT:PRINTS$" H[157][157][157]";:INPUT C$ 340 IFC$="Z"THENGOSUB540:GOSUB550 350 IFC$="F"THENGOSUB540:GOSUB830:GOSUB560 360 IFC$="E"THENGOSUB540:CM=1:GOSUB600:CM=0 370 IFC$="L"THENGOSUB540:CM=2:GOSUB620:CM=0 380 IFC$="S"THENGOSUB540:GOSUB1380:IFEA<53248THENCM=3:GOSUB650:CM=0 390 IFC$="P"THENGOSUB540:GOSUB680 400 IFC$="ADD"THENGOSUB540:GOSUB830 410 IFC$="R"THENGOSUB540:CM=4:GOSUB890:CM=0 420 IFC$="W"THENGOSUB540:CM=5:GOSUB900:CM=0 430 IFC$="VER"THENGOSUB540:CM=1:GOSUB910:CM=0 440 IFC$="V"THENGOSUB540:CM=6:GOSUB970:CM=0 450 IFC$="H"THENGOSUB540:GOSUB980 460 IFC$="M"THENGOSUB540:GOSUB1290 470 IFC$="I"THENGOSUB540:GOSUB1300 480 IFC$="D"THENGOSUB540:GOSUB1310 490 IFC$="A"THENGOSUB540:GOSUB1320 500 IFC$="C"THENGOSUB540:CM=7:GOSUB1350:CM=0 510 IFC$="T"THENGOSUB540:GOSUB1370 520 IFC$="TOGGLE"THENGOSUB540:GOSUB1400 530 GOTO210 540 PRINTCHR$(147)CHR$(142):RETURN 550 Z:RETURN 560 BY%=0:PRINT" ENTER VALUE FOR MEMORY FILL" 570 PRINT" HEX ($00-$FF) ";:INPUTB$:L=LEN(B$):IFL<>2THENGOTO560 580 H$="00"+B$:HA=0:GOSUB1040:IFHA<0ORHA>255THEN560 590 BY%=HA%:F BA%,EA%,BY%:RETURN 600 IFEE%=0ORCW%=0THENGOSUB680 610 E ES%,EE%,CW%:GOSUB1220:RETURN 620 IFBA%=0THENGOSUB830 630 GOSUB1000:IFN$=""THENRETURN 640 L N$,DN%,BA%:GOSUB1220:RETURN 650 IFBA%=0ANDEA%=0THENGOSUB830 660 GOSUB1000:IFN$=""THENRETURN 670 S N$,DN%,BA%,EA%:GOSUB1220:RETURN 680 PRINT" ENTER PROGRAM VOLTS(12.5/21/25)":PRINT" ";:INPUTV$ 690 IFV$<>"12.5"ANDV$<>"21"ANDV$<>"25"THENGOTO680 700 PV=1:IFVAL(V$)>12.5THENPV=2:IFVAL(V$)>21THENPV=3 710 PRINT:PRINT" ENTER EPROM TYPE(2758/2716/2732/2764)" 720 PRINT" (27128/27256/27512/68764/68766/68769)" 730 PRINT" ";:INPUTP$:IFP$="68764"ORP$="68769"THENP$="68766" 740 OK=1:IFP$<>"2758"ANDP$<>"2716"ANDP$<>"2732"ANDP$<>"2764"THENOK=0 750 IFOK=0ANDP$<>"27128"ANDP$<>"27256"ANDP$<>"27512"ANDP$<>"68766"THENGOTO710 760 BT=16:S=1:PRINT" ";:L=LEN(P$):ET=VAL(RIGHT$(P$,L-2)):ML=2:GOSUB1130 770 PRINT:IFCW%=0ORPM%=0THENGOSUB1160:GOTO680 780 H$=E$(S):EA$(2)=H$:HA=0:GOSUB1040:MA=HA:EE%=HA%:A1=1:GOSUB790:ES%=HA%:RETURN 790 PRINT" ENTER EPROM "A$(A1)" ADDRESS":E$=H$:IFA1=1THENLA=0:E$="00" 800 PRINT" ($"E$"-$";E$(S);") ";:INPUTEA$(A1) 810 PRINT:H$=RIGHT$("0000"+EA$(A1),4):HA=0:GOSUB1040:IFHAMATHEN790 820 RETURN 830 A1=1:CA=8192:GOSUB840:BA=HA:BA%=HA%:A1=2:CA=BA:GOSUB840:EA=HA:EA%=HA%:RETURN 840 PRINT" ENTER RAM "A$(A1)" HEX ADDRESS":X$=X$(1):IFA1<>2THENX$="2000" 850 PRINT" $"X$"-$DFFF) ";:INPUTX$(A1):PRINT 860 L=LEN(X$(A1)):IFL<>4THEN840 870 H$=X$(A1):HA=0:GOSUB1040:IFHA57343THEN840 880 RETURN 890 GOSUB930:R BA%,EA%,ES%,CW%:GOSUB1220:RETURN 900 GOSUB930:GOSUB960:RETURN 910 GOSUB600:CM=5:IFCK=2THEN1170 920 GOSUB930:GOSUB960:CM=6:GOSUB970:RETURN 930 IFBA%=0OREA%=0THENGOSUB830 940 IFCW%=0ORPM%=0THENGOSUB680 950 RETURN 960 P BA%,EA%,ES%,CW%,PM%:GOSUB1220:RETURN 970 GOSUB930:V BA%,EA%,ES%,CW%:GOSUB1220:RETURN 980 PRINTS$" COMMAND ADDENDUM":PRINT:PRINT" ( M / I / D / A / C / T )" 990 PRINT:PRINTS$" TOGGLE (CHECKSUM "TG$(TG):GOTO1170 1000 N$="":PRINT:PRINT" ENTER FILENAME" 1010 PRINT" ";:INPUTN$:PRINT:IFN$=""THENRETURN 1020 IFN$=","ORN$="?"ORN$="*"ORN$="@"ORN$=";"ORN$="."THENGOTO1000 1030 RETURN 1040 L=LEN(H$):FORI=LTO1STEP-1:B=16:A=ASC(MID$(H$,I,1)):IFA>47ANDA<58THEN1060 1050 FA=0:IFA<65ORA>70THENFA=1:GOTO1070 1060 GOSUB1090 1070 NEXTI:IFFATHENFA=0:HA=-1:RETURN 1080 GOSUB1120:RETURN 1090 B=B-1:IFH(B)>ATHEN1090 1100 GOSUB1110:RETURN 1110 HA=HA+(B*DV(I)):RETURN 1120 HA%=HA+65536*(HA>32767):RETURN 1130 RE=ET-BT:BT=BT*ML:IFRETHENS=S+1:IFS>6THENML=1:BT=766:IFS>7THENBT=58 1140 IFRETHENGOTO1130 1150 CW%=W(S,PV):PM%=PM(S,PV):GOSUB1040:ML=2:RETURN 1160 PRINTS$"SELECTED EPROM TYPE AND":PRINTS$"PGM. VOLTAGE NOT VALID." 1170 PRINT:PRINT" -PRESS ANY KEY TO CONTINUE-":PRINT:IFWTHEN1200 1180 POKE54296,15:POKE54278,89:POKE54276,33 1190 POKE54273,34:POKE54272,75:FORI=1TO100:NEXT:POKE54273,45:POKE54272,90 1200 GETA$:IFA$=""THENONW+1GOTO1190,1200 1210 POKE54296,0:RETURN 1220 AD=PEEK(166)+256*PEEK(167) 1230 IFPEEK(165)=0THENCK=1:IFCM>4THEN1260 1240 PRINT:IFPEEK(165)=255THENCK=2 1250 IFCM>1ORCK=2THENPRINT" "AD"= ADDRESS OF "R$(CM) 1260 POKE165,0:POKE166,0:POKE167,0:IFCM<>4THENPRINT" "C$(CM)" COMMAND "K$(CK) 1270 IFC$="VER"THENIFCM=1ORCM=5THENRETURN 1280 GOTO1170 1290 GOSUB830:M BA%,EA%:PRINT:GOTO1170 1300 GOSUB830:I BA%,EA%:PRINT:GOTO1170 1310 GOSUB1330:D ES%,EE%,CW%:GOTO1170 1320 GOSUB1330:A ES%,EE%,CW%:GOTO1170 1330 PRINT:IFCW%=0THENGOSUB680 1340 A1=1:GOSUB790:ES%=HA%:LA=HA:A1=2:GOSUB790:EE%=HA%:RETURN 1350 GOSUB830:CA=8192:LA=57343:A1=3:GOSUB840:CT%=HA% 1360 C BA%,EA%,CT%:PRINT:GOSUB1220:RETURN 1370 GOSUB830:CA=8192:A1=4:GOSUB840:CT%=HA%:T BA%,EA%,CT%:PRINT:RETURN 1380 IFEA>53247THENPRINT" -DATA SAVE NOT ALLOWED ABOVE $CFFF-":PRINT:GOSUB1170 1390 RETURN 1400 TG=TG+1:TG%=128:IFTG>1THENTG=0:TG%=0 1410 POKE157,TG%:GOSUB990:RETURN